<template>
    <view style="height: 100%">
        <view v-for="(item, index) in courseData" :key="index">
            <view v-if="item.cid == currentCourseId && item.id == currentQuestion" class="question">
                <view class="title">{{ item.title }}</view>
                <view class="detail">题目：{{ item.detail }}</view>
                <radio-group @change="handleChange" :data-id="item.id">
                    <view class="answer" v-for="(e, index1) in item.ans" :key="index1">
                        <radio :value="index1" :checked="item.uans == index1">{{ map[index1] }}: {{ e }}</radio>
                    </view>
                </radio-group>
                <view class="UpDown">
                    <button v-if="currentQuestion != start" class="Up" @tap="upQuestion">上一题</button>
                    <button v-if="currentQuestion != end" class="Down" @tap="downQuestion">下一题</button>
                    <button type="primary" v-if="currentQuestion == end" class="commit" @tap="commitQuestion">提交</button>
                </view>
            </view>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            // 页面标题
            title: '',

            // 这个类型题目的开始id
            start: 0,

            // 这个类型题目的结束id
            end: 0,

            // 当前题目的类别
            currentCourseId: 0,

            // 当前在哪个问题
            currentQuestion: 1,

            // 已经回答的问题数量
            okQuestion: 0,

            // 当前的分数
            score: 0,

            // 单个题的分值
            singlescore: 0,

            // 题目数据
            // id: 题号，从1开始
            // okstatus: 是否答对
            // res: 标准答案(0-3)
            // ans: 题的四个选项
            // uans: 客户选择的答案
            // status: 是否已填
            // okstatus: 是否填对
            courseData: [
                {
                    id: 1,
                    cid: 0,
                    title: '第一题',
                    detail: '在GFS中，客户端可以并行访问多个()，提高了系统的整体性能',
                    ans: ['客户端', '主服务器', '数据块服务器', '控制节点'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 2,
                    cid: 0,
                    title: '第二题',
                    detail: '云存储最核心的部分是',
                    ans: ['存储层', '访问层', '基础管理层', '应用接口层'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 3,
                    cid: 0,
                    title: '第三题',
                    detail: '分布式文件系统的性能要求主要包括',
                    ans: ['高效率、高可靠性', '高可扩展性、透明性', '自治性', '以上都是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 4,
                    cid: 0,
                    title: '第四题',
                    detail: '副本数量的确定与()因素有关',
                    ans: ['副本属性', '系统环境', '访问情况', '以上都是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 5,
                    cid: 0,
                    title: '第五题',
                    detail: '以下不属于集中式副本管理策略的优点的是',
                    ans: ['文件副本的数量快速增加', '全盘了解整个云存储系统', '快速知道任意节点及副本的状态情况', '结构简单'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 6,
                    cid: 0,
                    title: '第六题',
                    detail: '以下关于分布式副本管理策略描述错误的是',
                    ans: [
                        '整个存储系统副本管理分布在各个存储节点',
                        '存储节点之间可采用类似心跳机制进行通信',
                        '随着文件副本的数量增加，负载会急剧增加',
                        '维护存储节点间通信所花费的代价较大'
                    ],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 7,
                    cid: 0,
                    title: '第七题',
                    detail: 'Paxos云存储系统中的主要角色不包括',
                    ans: ['提议者', '决策者', '执行者', '学习者'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 8,
                    cid: 0,
                    title: '第八题',
                    detail: '以下关于S3的数据存储结构描述错误的是',
                    ans: ['包含存储桶和存储对象', '存储桶是S3中对数据进行排序的唯一方法', '每个存储对象都必须存储在一个存储桶中', '存储桶的名称唯一'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 9,
                    cid: 0,
                    title: '第九题',
                    detail: 'S3的性能优势包括',
                    ans: ['持久性和可用性', '弹性和可扩展性', '高数据访问速度和用户接口简单', '以上都是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 10,
                    cid: 0,
                    title: '第十题',
                    detail: 'Paxos算法用于解决分布式系统中的()问题',
                    ans: ['副本部署', '副本数量控制', '数据一致性', '副本删除'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 11,
                    cid: 1,
                    title: '第一题',
                    detail: '下列哪个不是Java的基本数据类型',
                    ans: ['long', 'float', 'String', 'double'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 12,
                    cid: 1,
                    title: '第二题',
                    detail: '使用Java语言编写的源程序保存时的文件扩展名是()',
                    ans: ['.class', '.java', '.cpp', '.txt'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 13,
                    cid: 1,
                    title: '第三题',
                    detail: '设int a=-2，则表达式a>>>3的值为()',
                    ans: [0, 3, 8, -1],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 14,
                    cid: 1,
                    title: '第四题',
                    detail: '设有数组的定义int[] a = new int[3]，则下面对数组元素的引用错误的是',
                    ans: ['a[0];', 'a[a.length-1];', 'a[3];', 'int i=1； a[i];'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 15,
                    cid: 1,
                    title: '第五题',
                    detail: '在类的定义中可以有两个同名函数，这种现象称为函数()',
                    ans: ['封装', '继承', '覆盖', '重载'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 16,
                    cid: 1,
                    title: '第六题',
                    detail: '在类的定义中构造函数的作用是()',
                    ans: ['保护成员变量', '读取类的成员变量', '描述类的特征', '初始化成员变量'],
                    res: 4,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 17,
                    cid: 1,
                    title: '第七题',
                    detail: '下面关键字中，哪一个不是用于异常处理语句()',
                    ans: ['try', 'break', 'catch', 'finally'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 18,
                    cid: 1,
                    title: '第八题',
                    detail: '类与对象的关系是',
                    ans: ['类是对象的抽象', '对象是类的抽象', '对象是类的子类', '类是对象的具体实例'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 19,
                    cid: 1,
                    title: '第九题',
                    detail: '构造ArrayList类的一个实例，此类继承了List接口，下列哪个方法是正确的',
                    ans: ['ArrayList myList=new Object()', 'List myList=new ArrayList()', 'ArrayList myList=new List()', 'List myList=new List()'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 20,
                    cid: 1,
                    title: '第十题',
                    detail: '下面哪个是非法的',
                    ans: ['int I = 32;', 'float f = 45.0;', 'double d = 45.0;', 'char c = ‘u’;'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 21,
                    cid: 1,
                    title: '第十一题',
                    detail: 'Java语言使用的字符码集是',
                    ans: ['ASCII', 'BCD', 'DCB', 'Unicode'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 22,
                    cid: 1,
                    title: '第十二题',
                    detail: '如果一个类的成员变量只能在所在类中使用，则该成员变量必须使用的修饰是',
                    ans: ['public', 'priavte', 'protected', 'static'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 23,
                    cid: 1,
                    title: '第十三题',
                    detail: '下面关于main方法说明正确的是',
                    ans: ['public main(String args[])', 'public static void main(String args[])', 'private static void main(String args[])', 'void main()'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 24,
                    cid: 1,
                    title: '第十四题',
                    detail: '哪个关键字可以对对象加互斥锁',
                    ans: ['transient', 'synchronized', 'serialize', 'static'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 25,
                    cid: 1,
                    title: '第十五题',
                    detail: 'java.io包的File类是',
                    ans: ['字符流类', '字节流类', '对象流类', '非流类'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 26,
                    cid: 1,
                    title: '第十六题',
                    detail: '以下关于继承的叙述正确的是',
                    ans: ['在Java中类只允许单一继承', '在Java中一个类只能实现一个接口', '在Java中类不能同时继承一个类和实现一个接口', '在Java中接口只允许单一继承'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 27,
                    cid: 1,
                    title: '第十七题',
                    detail: '下列类定义中哪些是合法的抽象类的定义？',
                    ans: [
                        'abstract Animal{abstract void growl();}',
                        'class abstract Animal{abstract void growl();}',
                        'abstract class Animal{abstract void growl();}',
                        'abstract class Animal{abstract void growl(){};}'
                    ],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 28,
                    cid: 1,
                    title: '第十八题',
                    detail: '请问所有的异常类皆继承哪一个类？',
                    ans: ['java.io.Exception', 'java.lang.Throwable', 'java.lang.Exception', 'java.lang.Error'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 29,
                    cid: 1,
                    title: '第十九题',
                    detail: '设 x = 1 , y = 2 , z = 3，则表达式 y＋＝z－－/＋＋x 的值是( )',
                    ans: [3, 3.5, 4, 5],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 30,
                    cid: 1,
                    title: '第二十题',
                    detail: '关于 for循环和 while循环的说法哪个正确？',
                    ans: ['while循环先判断后执行，for循环先执行后判断。', 'while循环任何情况下都优于for', '两种循环任何时候都不可以替换', '两种循环中都必须有循环体，且不能为空'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 31,
                    cid: 2,
                    title: '第一题',
                    detail: '假设a=9，b=2，那么下列运算中，错误的是',
                    ans: ['a+b的值是11', 'a//b的值是4', 'a%b的值是1', 'a**b的值是18'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 32,
                    cid: 2,
                    title: '第二题',
                    detail: '下列符号中，表示Python中单行注释的是',
                    ans: ['#', '//', '""', '<!---->'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 33,
                    cid: 2,
                    title: '第三题',
                    detail: '下列表达式中，返回 True 的是',
                    ans: ['a=2 b=2 a=b', '3>2>1', 'True and False', '2!=2'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 34,
                    cid: 2,
                    title: '第四题',
                    detail: '使用()符号对浮点类型的数据进行格式化。',
                    ans: ['%c', '%f', '%d', '%s'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 35,
                    cid: 2,
                    title: '第五题',
                    detail: '字符串的strip方法的作用是',
                    ans: ['删除字符串头尾指定的字符', '删除字符串末尾的指定字符', '删除字符串头部的指定字符', '通过指定分隔符对字符串切片'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 36,
                    cid: 2,
                    title: '第六题',
                    detail: '下列方法中，能够让所有单词的首字母变成大写的方法是',
                    ans: ['capitalize', 'title', 'upper', 'ljust'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 37,
                    cid: 2,
                    title: '第七题',
                    detail: '关于列表的说法，描述有错误的是',
                    ans: ['list是一个有序集合，没有固定大小', 'list可以存放任意类型的元素', '使用list时，其下标可以是负数', 'list是不可变的数据类型'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 38,
                    cid: 2,
                    title: '第八题',
                    detail: '下列删除列表中最后一个元素的函数是',
                    ans: ['del', 'pop', 'remove', 'cut'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 39,
                    cid: 2,
                    title: '第九题',
                    detail: '下列有关函数的说法中，正确的是',
                    ans: ['函数的定义必须在程序的开头', '函数定义后，其中的程序就可以自动执行', '函数定义后需要调用才会执行', '函数体与关键字def必须左对齐'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 40,
                    cid: 2,
                    title: '第十题',
                    detail: '使用()关键字创建自定义函数。',
                    ans: ['function', 'func', 'def', 'procedure'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 41,
                    cid: 3,
                    title: '第一题',
                    detail: '下列关于 Vue 说法错误的是',
                    ans: ['Vue可以用来创建复杂的前端项目', 'Vue的优势主要包括轻量级、双向数据绑定', '实例化前应确保已经引入了核心文件vue.js', 'Vue与React 语法是完全相同的'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 42,
                    cid: 3,
                    title: '第二题',
                    detail: '下列不属于 Vue 开发所需工具的是',
                    ans: ['Chrome 浏览器', 'VS Code 编辑器', 'vue-devtools', '微信开发者工具'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 43,
                    cid: 3,
                    title: '第三题',
                    detail: 'npm 包管理器是基于()平台使用的',
                    ans: ['node.js', 'Vue', 'Balel', 'Angular'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 44,
                    cid: 3,
                    title: '第四题',
                    detail: '下列关于 Vue 的优势的说法错误的是',
                    ans: ['双向数据绑定', '轻量级框架', '增加代码的耦合度', '实现组件化'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 45,
                    cid: 3,
                    title: '第五题',
                    detail: '下列哪种数组的方法不会修改数组本身',
                    ans: ['slice', 'splice', 'sort', 'unshift'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 46,
                    cid: 3,
                    title: '第六题',
                    detail: '请问下面那个方法可以删除数组最后一个元素',
                    ans: ['shift()', 'unshift()', 'pop()', 'push()'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 47,
                    cid: 3,
                    title: '第七题',
                    detail: '以下不是闭包特点的是',
                    ans: ['函数嵌套函数', '函数内部可以引用外部的参数和变量', '参数和变量不会被垃圾回收机制回收', '返回的函数可以不用存储在外部变量中'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 48,
                    cid: 3,
                    title: '第八题',
                    detail: '关于Vue安装下列说法正确的是',
                    ans: ['Vue是Javascript框架所以不需要安装', '只要引入jQuery就可以使用Vue', 'Vue要用script标签引入', '以上都不对'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 49,
                    cid: 3,
                    title: '第九题',
                    detail: '阻止浏览器默认行为，使用以下哪个方法',
                    ans: ['topPropagation()', 'preventDefault()', 'cancelBubble = false', 'return true'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 50,
                    cid: 3,
                    title: '第十题',
                    detail: '下列选项，用来安装vue模块的正确命令是',
                    ans: ['npm install vue', 'node.js install vue', 'node install vue', 'npm I vue'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 51,
                    cid: 4,
                    title: '第一题',
                    detail: '组件间如何通信',
                    ans: ['父子组件props', '自定义事件', 'redux和Context', '以上都是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 52,
                    cid: 4,
                    title: '第二题',
                    detail: '渲染列表为何要用key',
                    ans: ['不能为index和random', '过tag和key来判断，是否是sameNode', '减少渲染次数，提升渲染性能', '以上都是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 53,
                    cid: 4,
                    title: '第三题',
                    detail: 'React采用的是什么渲染方式',
                    ans: ['A. CSR(客户端渲染)', 'SSR(服务端渲染)', 'C.静态渲染', '动态渲染'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 54,
                    cid: 4,
                    title: '第四题',
                    detail: '下面哪个不是React的特性',
                    ans: ['组件化', '单向数据流', '虚拟DOM', '双向数据绑定'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 55,
                    cid: 4,
                    title: '第五题',
                    detail: 'React如何向子组件传递数据',
                    ans: ['props', 'state', 'refs', 'context'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 56,
                    cid: 4,
                    title: '第六题',
                    detail: 'React如何处理用户输入',
                    ans: ['使用原生事件函数处理', '使用React自带事件函数处理', '使用第三方事件库处理', '以上都可以'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 57,
                    cid: 4,
                    title: '第七题',
                    detail: '在React中如何自定义一个组件',
                    ans: ['使用ES6 class', '使用函数式组件', '两者都可以', '使用ES5实现一个React.createClass方法'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 58,
                    cid: 4,
                    title: '第八题',
                    detail: '在React中如何将处理列表渲染',
                    ans: ['使用for', '使用map', '使用orEach', '以上都可以'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 59,
                    cid: 4,
                    title: '第九题',
                    detail: '在React中如何处理样式',
                    ans: ['使用原生css', '使用内联样式', '使用css模块化', '以上都可以'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 60,
                    cid: 4,
                    title: '第十题',
                    detail: '在React中如何处理路由',
                    ans: ['使用原生路由库', '使用第三方路由库', '使用React_route库', '以上都可以'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 61,
                    cid: 5,
                    title: '第一题',
                    detail: '在css定位属性中， position的值为不可以是',
                    ans: ['绝对定位', '相对定位', '层叠定位', '固定定位'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 62,
                    cid: 5,
                    title: '第二题',
                    detail: '要使表格的边框不显示，应设置border的值是',
                    ans: ['0', '1', '2', '3'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 63,
                    cid: 5,
                    title: '第三题',
                    detail: '在CSS中，关于float的属性描述错误的是',
                    ans: ['float:left;', 'float:center;', 'float:right;', 'float:none;'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 64,
                    cid: 5,
                    title: '第四题',
                    detail: '<img/>图像标签中，除了可以设置width、height、alt、title外还可以设置',
                    ans: ['hspace', 'vspace', 'align', '以上全部'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 65,
                    cid: 5,
                    title: '第五题',
                    detail: '在CSS中,下面( )用于设置div标签的边框效果',
                    ans: ['width', 'border', 'margin', 'padding'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 66,
                    cid: 5,
                    title: '第六题',
                    detail: '下面关于display样式，描述错误的是',
                    ans: ['block：用该值为对象之后添加新行', 'none :隐藏对象。隐藏对象保留物理空间', 'inline :内联对象的默认值', 'inline-block：将对象呈递为内联对象'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 67,
                    cid: 5,
                    title: '第七题',
                    detail: '在CSS中有关z-index值说法正确的是',
                    ans: ['Z-index 能在所有元素上奏效', '元素不能拥有负的 z-index 属性值', 'Z-index 仅能在定位元素上奏效', '以上说法都正确'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 68,
                    cid: 5,
                    title: '第八题',
                    detail: '在css样式表中，若将background-color的属性设为（），则标签的背景色为透明',
                    ans: ['#fff', '#000', 'white', 'ransparent'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 69,
                    cid: 5,
                    title: '第九题',
                    detail: 'CSS中m在设置background-color时，参数值rgb(255,0,0)表示',
                    ans: ['红色', '黄色', '绿色', '蓝色'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 70,
                    cid: 5,
                    title: '第十题',
                    detail: '下列属于CSS3新增属性的是',
                    ans: ['box-shadow', 'border', 'background', 'display'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 71,
                    cid: 6,
                    title: '第一题',
                    detail: '对于常数据成员，下面描述正确的是',
                    ans: ['必须被初始化，并且不能被修改', '可以不初始化，并且不能被修改', '可以不初始化，并且可以被修改', '必须被初始化，并且可以被修改'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 72,
                    cid: 6,
                    title: '第二题',
                    detail: 'C++中，使用流进行输入输出，其中用于定义文件输入流对象的类是',
                    ans: ['ios', 'ifstream', 'ofstream', 'istrstream'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 73,
                    cid: 6,
                    title: '第三题',
                    detail: '下列关于异常的叙述错误的是',
                    ans: ['编程者认为是异常的都可当异常抛出', '硬件故障也可当异常抛出', '运行错属于异常', '编译错属于异常，可以抛出'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 74,
                    cid: 6,
                    title: '第四题',
                    detail: '关于域的描述中，错误的是',
                    ans: ['一个类是一个独立的域', '派生类域被自动嵌套在基类类域中', '域操作符::可以被重载', '不同域中可以定义同名变量和函数'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 75,
                    cid: 6,
                    title: '第五题',
                    detail: '下面()的叙述不符合赋值兼容规则',
                    ans: ['基类的对象可以赋值派生类的对象', '派生类指针可以指向基类对象', '派生类对象可以初始化基类的对象', '派生类对象地址可以赋值给指向基类指针'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 76,
                    cid: 6,
                    title: '第六题',
                    detail: '构造函数不具备的特征的是',
                    ans: ['构造函数的函数名与类名相同', '构造函数可以重载', '构造函数可以设置默认参数', '构造函数必须指定返回类型'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 77,
                    cid: 6,
                    title: '第七题',
                    detail: '从基类 public 派生一个类，基类 protected 成员成为派生类()成员',
                    ans: ['public', 'protected', 'private', 'virtual'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 78,
                    cid: 6,
                    title: '第八题',
                    detail: '下列关于静态数据成员的说法，不正确的是',
                    ans: [
                        '类中公用静态数据成员，可通过类对象访问',
                        '类中的所有静态数据成员，须在类外初始化',
                        '静态数据成员不是所有对象所共用的',
                        '普通成员函数可以直接访问类中静态数据成员'
                    ],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 79,
                    cid: 6,
                    title: '第九题',
                    detail: '下列关于运算符重载的描述中，正确的是',
                    ans: ['运算符重载可以改变操作数的个数', '运算符重载可以改变优先级', '运算符重载可以改变结合性', '运算符重载不可以改变语法结构'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 80,
                    cid: 6,
                    title: '第十题',
                    detail: '有关内联函数的描述，正确的是',
                    ans: ['内联函数可以提高程序效率', '内联函数的调用过程与普通函数一样', '用inline关键字声明的函数都是内联函数', '全局函数不能声明为内联函数'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 81,
                    cid: 7,
                    title: '第一题',
                    detail: '最长公共子序列算法利用的算法是',
                    ans: ['分支界限法', '动态规划法', '贪心法', '回溯法'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 82,
                    cid: 7,
                    title: '第二题',
                    detail: '二分搜索算法是利用()实现的算法',
                    ans: ['分治策略', '动态规划法', '贪心法', '回溯法'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 83,
                    cid: 7,
                    title: '第三题',
                    detail: '衡量一个算法好坏的标准是',
                    ans: ['运行速度快', '占用空间少', '时间复杂度低', 'B和C'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 84,
                    cid: 7,
                    title: '第四题',
                    detail: '下面是贪心算法的基本要素的是',
                    ans: ['重叠子问题', '构造最优解', '贪心选择性质', '定义最优解'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 85,
                    cid: 7,
                    title: '第五题',
                    detail: '实现棋盘覆盖算法利用的算法是',
                    ans: ['分治法', '动态规划法', '贪心法', '回溯法'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 86,
                    cid: 7,
                    title: '第六题',
                    detail: '下列是动态规划算法基本要素的是',
                    ans: ['定义最优解', '最优解', '算出最优解', '子问题重叠性质'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 87,
                    cid: 7,
                    title: '第七题',
                    detail: '贪心算法与动态规划算法的主要区别是',
                    ans: ['最优子结构', '贪心选择性质', '构造最优解', '定义最优解'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 88,
                    cid: 7,
                    title: '第八题',
                    detail: '一个问题可用动态规划算法或贪心算法求解的关键特征是问题的',
                    ans: ['重叠子问题', '最优子结构性质', '贪心选择性质', '定义最优解'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 89,
                    cid: 7,
                    title: '第九题',
                    detail: '实现大整数的乘法是利用（）的算法',
                    ans: ['贪心法', '动态规划法', '分治策略', '回溯法'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 90,
                    cid: 7,
                    title: '第十题',
                    detail: '矩阵连乘问题的算法可由（）设计实现',
                    ans: ['分支界限算法', '动态规划算法', '贪心算法', '回溯算法'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 91,
                    cid: 8,
                    title: '第一题',
                    detail: 'HTTP 应答中的 500 错误是',
                    ans: ['服务器内部出错', '文件未找到', '客户端网络不通', '没有访问权限'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 92,
                    cid: 8,
                    title: '第二题',
                    detail: '关于http和https描述错误的是',
                    ans: ['HTTPS是加密传输，HTTP是明文件传输', 'HTTPS需要用到SSL证书，而HTTP不需要', 'HTTPS标准端口是80，HTTP标准端口是445', 'HTTPS的安全基础是TLS/SSL'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 93,
                    cid: 8,
                    title: '第三题',
                    detail: '标准的http响应报文中，以下哪个说法是错误的',
                    ans: [
                        '可从响应行中查看状态码以及状态码的解释',
                        '响应报文不存在Header，只有请求的时候有',
                        '可以查看Content-Length来确定Body长度',
                        '响应报文中Body中可以返回任意长度的内容'
                    ],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 94,
                    cid: 8,
                    title: '第四题',
                    detail: '标准的http请求报文头中，以下哪个说法是错误的是',
                    ans: ['User-Agent: 声明用户的ip地址', 'Content-Type: 数据类型', 'Host: 告知服务器, 资源在哪个主机的那个端口上', 'location: 搭配3xx使用, 告诉客户端跳转目标'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 95,
                    cid: 8,
                    title: '第五题',
                    detail: 'http状态码中，()表示访问成功',
                    ans: ['5xx', '4xx', '3xx', '2xx'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 96,
                    cid: 8,
                    title: '第六题',
                    detail: '关于HTTP状态码说法错误的是',
                    ans: ['403 表示禁止访问', '404 表示正常返回信息', '503 表示服务器端暂时无法处理请求', '301表示永久重定向'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 97,
                    cid: 8,
                    title: '第七题',
                    detail: '哪个是进行域名解析的指令',
                    ans: ['mkdir', 'chmod', 'dig', 'touch'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 98,
                    cid: 8,
                    title: '第八题',
                    detail: '以下关于HTTP协议叙述正确的是',
                    ans: ['HTTP协议是明文传输', 'Cookie数据在消息主体（body）中传输', 'HTTP支持一定时间内的TCP连接保持', 'HTTP是有状态的，每个请求都是独立的'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 99,
                    cid: 8,
                    title: '第九题',
                    detail: 'HTTP1.1的请求方法不包括',
                    ans: ['PUT', 'DELETE', 'POLL', 'TRACE'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 100,
                    cid: 8,
                    title: '第十题',
                    detail: '以下对http请求方法描述错误的是',
                    ans: ['POST请求不会被缓存，对数据长度没有限制', '可以从浏览器历史记录中查找到GET请求', '无法从浏览器历史记录中查找到POST请求', 'POST请求不能没有请求体'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 101,
                    cid: 9,
                    title: '第一题',
                    detail: '在数据库中存储的是',
                    ans: ['数据', '数据模型', '数据以及数据之间的联系', '信息'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 102,
                    cid: 9,
                    title: '第二题',
                    detail: '下列选项中属于删除数据库的语句是',
                    ans: ['DROP TABLE', 'DROP DATABASE', 'DELETE DATABASE', 'DELETE TABLE'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 103,
                    cid: 9,
                    title: '第三题',
                    detail: '查看student表基本结构的SQL语句是',
                    ans: ['show student', 'show create student', 'show create table student', 'desc student '],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 104,
                    cid: 9,
                    title: '第四题',
                    detail: '下面有关主键和外键之间的关系描述，正确的是',
                    ans: [
                        '表中只能有一个主键约束，有多个外键约束',
                        '表中最多有一个外键约束，一个主键约束',
                        '可以先定义主键约束，也可先定义外键约束',
                        '必须先定义外键约束，然后定义主键约束 '
                    ],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 105,
                    cid: 9,
                    title: '第五题',
                    detail: '提供了执行mysqldump之后对数据库的更改进行复制所需的信息的是',
                    ans: ['MySQL配置文件', 'MySQL数据库', '二进制日志文件', 'BIN数据库'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 106,
                    cid: 9,
                    title: '第六题',
                    detail: '下面关于关系数据库视图的描述，不正确的是',
                    ans: ['视图能够对机密数据提供安全保护', '当视图来自多个表时，允许添加和删除数据', '创建视图的SELECT不可包括ORDER BY', '只能在当前数据库中创建视图'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 107,
                    cid: 9,
                    title: '第七题',
                    detail: '要求视图的更新必须满足查询中的条件，在视图建立语句中应使用',
                    ans: ['WITH CHECK OPTION', 'WITH UPDATE', 'WITH DELETE', 'WITH INSERT'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 108,
                    cid: 9,
                    title: '第八题',
                    detail: '下面不属于SQL的特点是',
                    ans: ['集数据定义、操言、控制元素为一体', '符合人们的思维方式，容易理解和掌握', '语句的操作过程由系统自动完成。', '以上都不是'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 109,
                    cid: 9,
                    title: '第九题',
                    detail: '为student表增加一个年龄字段正确的语法为',
                    ans: ['add sAge to student', 'change table student add sAge', 'alter table student add sAge int', 'alter table student add sAge '],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 110,
                    cid: 9,
                    title: '第十题',
                    detail: '下面哪种数字数据类型不可以存储数据256',
                    ans: ['bigint', 'smallint', 'int', 'tinyint'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 111,
                    cid: 10,
                    title: '第一题',
                    detail: '创建一个文件，通过流的方式读取数据，该怎么做',
                    ans: ['调用fs.open方法', '调用fs.read方法', '调用fs.readFile方法', '创建一个可读流，然后监听data事件处理数据'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 112,
                    cid: 10,
                    title: '第二题',
                    detail: '一个stream.Writable实例发生了什么错误该怎么办',
                    ans: ['调用error方法', '提供callback，参数是Error，保存了错误信息', '不可能发生错误', '监听finish事件再调用error判断是否发生错误'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 113,
                    cid: 10,
                    title: '第三题',
                    detail: '在Node.js代码中要如何加载http模块',
                    ans: ['http模式是全局的，无需加载，直接使用即可', "使用require('http')即可", '使用module方法', '使用exports方法'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 114,
                    cid: 10,
                    title: '第四题',
                    detail: 'Node.js中，想让自定义的类具有发射事件的能力，需要继承哪个类',
                    ans: ['Events', 'events.Event', 'events.EventEmitter', 'Buffer'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 115,
                    cid: 10,
                    title: '第五题',
                    detail: '想要监听事件，不可以用下列哪些方法',
                    ans: ['emitter.addListener', 'emitter.on', 'emitter.once', 'emitter.emit'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 116,
                    cid: 10,
                    title: '第六题',
                    detail: '想知道一个字符串是否包含某个字符，可以怎么做',
                    ans: ['调用indexOf，返回值不是-1就说明包含', '调用lastIndexOf，返回值不是-1就说明包含', '调用match方法', '以上都对'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 117,
                    cid: 10,
                    title: '第七题',
                    detail: 'Nodejs的特点不包括下列哪个？',
                    ans: ['单线程', '多线程', '非阻塞I/O', '事件驱动'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 118,
                    cid: 10,
                    title: '第八题',
                    detail: 'Nodejs的底层是使用哪门语言实现的？',
                    ans: ['C++', 'Java', 'Python', 'Golang'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 119,
                    cid: 10,
                    title: '第九题',
                    detail: 'nodejs的哪个模块可以搭建服务器？',
                    ans: ['http', 'url', 'path', 'fs'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 120,
                    cid: 10,
                    title: '第十题',
                    detail: 'nodejs的哪个模块可以操作文件',
                    ans: ['http', 'url', 'path', 'fs'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 121,
                    cid: 11,
                    title: '第一题',
                    detail: '下列哪个不是redis的数据类型',
                    ans: ['string', 'set', 'hash', 'int'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 122,
                    cid: 11,
                    title: '第二题',
                    detail: '下列关于redis的描述错误的是',
                    ans: ['数据是存在内存中的，读写速度非常快', '支持持久化，以将内存中的数据存储到磁盘中', 'redis不支持数据备份', 'redis是key-value结构'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 123,
                    cid: 11,
                    title: '第三题',
                    detail: 'rdb和aof的说法错误的是',
                    ans: ['大规模恢复数据，RDB要比AOF更加高效。', 'AOF重写不会对redis正常命令处理有太多影响', 'aof文件大小远大于rdb，修复速度也比rdb慢', 'rdb数据安全性高'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 124,
                    cid: 11,
                    title: '第四题',
                    detail: '关于使用Redis有哪些好处，下列说法错误的是',
                    ans: ['速度快', '支持丰富数据类型', '支持事务', '可以在业务中替代关系型数据库'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 125,
                    cid: 11,
                    title: '第五题',
                    detail: '下列哪个不是Redis的回收策略',
                    ans: ['volatile-enviction', 'volatile-ttl', 'volatile-random', 'allkeys-random'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 126,
                    cid: 11,
                    title: '第六题',
                    detail: 'Redis集群最大节点个数是多少',
                    ans: ['100', '16384', '1024', '2023'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 127,
                    cid: 11,
                    title: '第七题',
                    detail: '下列哪个不是Redis事务相关的命令',
                    ans: ['MULTI', 'EXEC', 'DISCARD', 'COMMIT'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 128,
                    cid: 11,
                    title: '第八题',
                    detail: '下列哪个不是Redis适合的场景',
                    ans: ['计数器', '缓存', '发布订阅', '大容量存储'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 129,
                    cid: 11,
                    title: '第九题',
                    detail: 'Redis相比 Memcached具有的优势，下列说法错误的是',
                    ans: ['Memcached支持发布订阅，redis不支持', 'Redis支持更为丰富的数据类', 'Redis的速度比Memcached 快很 ', 'Redis可以持久化其数据'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 130,
                    cid: 11,
                    title: '第十题',
                    detail: '一个字符串类型的值能存储最大容量是多少',
                    ans: ['512KB', '512MB', '512GB', '512TB'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 131,
                    cid: 12,
                    title: '第一题',
                    detail: '在HTML中，要定义一个空链接使用的标记是?',
                    ans: ['<a href="#">', '<a href=";">', '<a href="@">', '<a href="!">'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 132,
                    cid: 12,
                    title: '第二题',
                    detail: '以下对html的描述不正确的是',
                    ans: ['标签可以交叉嵌套使用', '标签不能交叉嵌套使用', '大小写敏感，标签可以交叉嵌套使用', '大小写不敏感，标签可以交叉嵌套使用'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 133,
                    cid: 12,
                    title: '第三题',
                    detail: '以下哪个标签可以实现强制换行',
                    ans: ['br', 'dr', 'hr', 'fr'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 134,
                    cid: 12,
                    title: '第四题',
                    detail: '下列在HTML文档中插入样式表的方式，优先级最高的是',
                    ans: ['外部link引入', '行内的style属性', '外部@import引入', 'style标签'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 135,
                    cid: 12,
                    title: '第五题',
                    detail: '下列关于CSS中盒子模型说法错误的是',
                    ans: ['padding代表盒子与其他盒子之间的距离', 'border代表盒子的边框', '可通过box-sizing属性设置不同的盒子模型', '盒子模型是页面布局的基础'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 136,
                    cid: 12,
                    title: '第六题',
                    detail: '在HTML中，若实现点击超链接，如何弹出一个新的网页窗口',
                    ans: ['target="_self"', 'target="_blank"', 'target="_new"', 'target="_top"'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 137,
                    cid: 12,
                    title: '第七题',
                    detail: '以下哪个标签用于在表单中构建复选框',
                    ans: ['<inputtype="text"/>', '<inputtype="radio"/>', '<inputtype="checkbox"/>', '<inputtype="password"/>'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 138,
                    cid: 12,
                    title: '第八题',
                    detail: '下列哪个是鼠标点击时的超链接样式',
                    ans: ['a:link', 'a:visited', 'a:hover', 'a:active'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 139,
                    cid: 12,
                    title: '第九题',
                    detail: '下面关于外部样式表的说法错误的是',
                    ans: ['文件扩展名为.cs', '外部样式内容不需要使用<style>', '使用<link>标签引入外部样式', '使用外部样式可以使网站更加简洁'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 140,
                    cid: 12,
                    title: '第十题',
                    detail: '在HTML中有效，规范的注释声明是',
                    ans: ['//这是注释', '<!--这是--注释-->', '/*这是注释*/', '<!--这是注释-->'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 141,
                    cid: 13,
                    title: '第一题',
                    detail: '下面属于关键字的是',
                    ans: ['func', 'def', 'struct', 'lixianhe'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 142,
                    cid: 13,
                    title: '第二题',
                    detail: '定义一个包内全局字符串变量',
                    ans: ['var str string', 'str = ""', 'str := ""', 'String str=""'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 143,
                    cid: 13,
                    title: '第三题',
                    detail: '通过指针变量 p 访问其成员变量 name，下面语法正确的是',
                    ans: ['p.name', '(p->)name', '(&p).name', 'p->name'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 144,
                    cid: 13,
                    title: '第四题',
                    detail: '关于接口和类的说法，下面说法错误的是',
                    ans: [
                        '类实现了接口的所有函数，就是类实现了接口',
                        '实现类时，只需要关心自己应该提供哪些方法',
                        '类实现接口时，需要导入接口所在的包',
                        '接口使用方无需关心其他模块定义过类似接口'
                    ],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 145,
                    cid: 13,
                    title: '第五题',
                    detail: '关于协程，下面说法正确是',
                    ans: ['只有go语言支持协程', '协程不存在死锁问题', '线程比协程更轻量级', '协程和线程都可以实现程序的并发执行'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 146,
                    cid: 13,
                    title: '第六题',
                    detail: '关于init函数，下面说法正确的是',
                    ans: ['init函数可以被其他函数调用', 'main包中，不能有init函数', ' 编译时，先执行本包init，再执行导入包的init', '一个包中，可以包含多个init函数'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 147,
                    cid: 13,
                    title: '第七题',
                    detail: '关于循环语句，下面说法正确的有',
                    ans: [
                        '既支持for关键字，也支持while和do-while',
                        '关键字for的使用方法与C/C++没有任何差异',
                        'for循环不支持以逗号为间隔的多个赋值语句',
                        'for循环不支持continue和break来控制循环'
                    ],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 148,
                    cid: 13,
                    title: '第八题',
                    detail: '关于局部变量的初始化，下面错误的使用方式是',
                    ans: ['var i int = 10', 'var i = 10', 'i := 10', 'i = 10'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 149,
                    cid: 13,
                    title: '第九题',
                    detail: '关于布尔变量b的赋值，下面错误的用法是',
                    ans: ['b = true', 'b = 1', 'b = (1 != 2)', 'b = (1 == 2)'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 150,
                    cid: 13,
                    title: '第十题',
                    detail: '关于整型切片的初始化，下面错误的是',
                    ans: ['s := make([]int)', 's := make([]int, 0)', 's := make([]int, 5, 10)', 's := []int{1, 2, 3, 4, 5}'],
                    res: 0,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 151,
                    cid: 14,
                    title: '第一题',
                    detail: '使用git管理代码如何推送到远程？',
                    ans: ['git add', 'git commit', 'git pull', 'git push'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 152,
                    cid: 14,
                    title: '第二题',
                    detail: '下列关于git的描述不恰当的一项是',
                    ans: ['可以采用公钥认证进行安全管理', '可以利用快照签名回溯历史版本', '必须搭建Server才能提交修改', '属于分布式版本控制工具'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 153,
                    cid: 14,
                    title: '第三题',
                    detail: '首次使用git之前 建议做什么工作？',
                    ans: ['配置 git的 图形用户界面', '配置 git的 用户名和邮箱', '配置 git 中文处理', '配置 git 的多用户使用'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 154,
                    cid: 14,
                    title: '第四题',
                    detail: '如何一次将一个目录下的所有文件交给git？',
                    ans: ['git add 文件名', 'git add 仓库名', 'git add 目录名', 'git add 暂存区名字'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 155,
                    cid: 14,
                    title: '第五题',
                    detail: 'git reset --hard HEAD^ 含义是？',
                    ans: ['切换最新版本 ', '切换第一个版本', '将代码提交到工作区', '切换到上一个版本'],
                    res: 3,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 156,
                    cid: 14,
                    title: '第六题',
                    detail: '如何合并分支？',
                    ans: ['git checkout 分支名', 'git merge 分支名', 'git branch 分支名', 'git push 分支名'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 157,
                    cid: 14,
                    title: '第七题',
                    detail: '什么是冲突？',
                    ans: ['版本无法纳入管理', '文件的版本顺序在git下无法确定的情况', '遗忘提交仓库的版本号', '仓库非空'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 158,
                    cid: 14,
                    title: '第八题',
                    detail: '如何删除分支？',
                    ans: ['git checkout -D 分支名', 'git remove 分支名', 'git branch -D 分支名', 'git rm 分支名'],
                    res: 2,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 159,
                    cid: 14,
                    title: '第九题',
                    detail: '如果git出现了冲突后应该怎么办？',
                    ans: ['这删除文件', '修改冲突文件后,再次提交成新版本', '增加新的分支', '将文件再次纳入到暂存区'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                },
                {
                    id: 160,
                    cid: 14,
                    title: '第十题',
                    detail: '如果把项目中文件 hello.py 的内容破坏了，如何使其还原至原始版本？',
                    ans: ['git reset – hello.py', 'git checkout HEAD – hello.py', 'git revert hello.py', 'git update hello.py'],
                    res: 1,
                    uans: -1,
                    status: false,
                    okstatus: false
                }
            ],

            // 便利输出ABCD
            map: ['A', 'B', 'C', 'D'],

            e: ''
        };
    }
    /**
     * 生命周期函数--监听页面加载
     */,
    onLoad(options) {
        uni.showLoading({
            title: '数据正在加载'
        });
        this.setData({
            title: options.courseName
        });
        let count = 0;
        // 设置初始题号
        for (let i = 0; i < this.courseData.length; i++) {
            if (this.courseData[i].cid == parseInt(options.courseid)) {
                for (let j = i + 1; j < this.courseData.length; j++) {
                    if (this.courseData[j].cid == parseInt(options.courseid)) {
                        count++;
                    } else {
                        break;
                    }
                }
                this.setData({
                    singlescore: 100 / (count + 1),
                    end: this.currentQuestion + i + count,
                    start: this.currentQuestion + i,
                    currentQuestion: this.currentQuestion + i,
                    currentCourseId: parseInt(options.courseid)
                });
                break;
            }
        }
        uni.hideLoading();
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        // 进入页面是动态更好页面的导航栏标题
        // 需要在OnReady调用，一个页面只会调用一次，代表页面已经准备妥当
        uni.setNavigationBarTitle({
            title: this.title
        });
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {},
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {},
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {},
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {},
    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {},
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {},
    methods: {
        handleChange(e) {
            // id是传过来的题号
            let id = e.currentTarget.dataset.id - 1;
            // ans是客户回答的值
            let ans = e.detail.value;
            // 获取题目的信息
            var temp = this.courseData;
            // 更新客户选择的题号
            temp[id].uans = ans;
            // 第一次选择，且选对了
            if (this.courseData[id].res == ans && this.courseData[id].status == false) {
                this.setData({
                    score: this.score + this.singlescore
                });
            }

            // 修改题目状态为已填
            if (this.courseData[id].status == false) {
                temp[id].status = true;
                // 如果答对了，同时变成已经对
                if (this.courseData[id].res == ans) {
                    temp[id].okstatus = true;
                }
                this.setData({
                    okQuestion: this.okQuestion + 1,
                    courseData: temp
                });
                return;
            }

            // 非第一次选择
            if (this.courseData[id].res == ans) {
                if (this.courseData[id].okstatus == false) {
                    this.setData({
                        score: this.score + this.singlescore
                    });
                    temp[id].okstatus = true;
                    this.setData({
                        courseData: temp
                    });
                }
            } else {
                // 只有刚才是对的才扣分
                if (this.courseData[id].okstatus == true) {
                    temp[id].okstatus = false;
                    this.setData({
                        score: this.score - this.singlescore,
                        courseData: temp
                    });
                } else {
                    temp[id].okstatus = false;
                    this.setData({
                        courseData: temp
                    });
                }
            }
        },

        downQuestion(e) {
            this.setData({
                currentQuestion: this.currentQuestion + 1
            });
        },

        upQuestion(e) {
            this.setData({
                currentQuestion: this.currentQuestion - 1
            });
        },

        commitQuestion(e) {
            // 为true代表所有题都填了
            if (this.okQuestion - 1 + this.start == this.end) {
                let score = this.score;
                uni.showModal({
                    title: '提示',
                    content: '确认是否提交',
                    success: function (res) {
                        if (res.confirm) {
                            //这里是点击了确定以后
                            uni.redirectTo({
                                url: '/pages/score/score?score=' + score
                            });
                        } else {
                            //这里是点击了取消以后
                        }
                    }
                });
            } else {
                uni.showToast({
                    title: '有未作答的题目!',
                    icon: 'error',
                    duration: 2000 //持续的时间
                });
            }
        }
    }
};
</script>
<style>
@import './question.css';
</style>
